package com.sojson.config.exception;

/**
 * 接口异常类
 * 
 * @author liu
 * @date 2020-11-02
 */
public class TransException extends RuntimeException {

    /**
     * 
     */
    private static final long serialVersionUID = -1432897560614514727L;

    /**
     * 异常代码
     */
    private Integer errCode;

    /**
     * 异常信息
     */
    private String errMsg;

    public TransException() {
        TransErrorCode otherError = TransErrorCode.OTHER_ERROR;
        setErrCode(otherError.getCode());
        setErrMsg(otherError.getMsg());
    }

    public TransException(String msg) {
        setErrCode(TransErrorCode.OTHER_ERROR.getCode());
        setErrMsg(msg);
    }

    public TransException(TransErrorCode menu) {
        setErrCode(menu.getCode());
        setErrMsg(menu.getMsg());
    }

    public TransException(TransErrorCode menu, String msg) {
        setErrCode(menu.getCode());
        setErrMsg(menu.getMsg() + ":" + msg);
    }

    public TransException(Integer code, String msg) {
        setErrCode(code);
        setErrMsg(msg);
    }

    public TransException(Exception e) {
        super(e.getMessage(), e);
    }

    /** 获取异常代码 */
    public Integer getErrCode() {
        return errCode;
    }

    /** 设置异常代码 */
    public void setErrCode(Integer errCode) {
        this.errCode = errCode;
    }

    /** 获取异常信息 */
    public String getErrMsg() {
        return errMsg;
    }

    /** 设置异常信息 */
    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }

    /** 获取异常信息 */
    @Override
    public String getMessage() {
        return errMsg;
    }

}